/** @type {Object} 本地缓存 */
import Storejs from 'storejs';
import Util from './util.js'

const store = {
  /**
   * 设置缓存
   * @Author   Martinsun<syh@sunyonghong.com>
   * @DateTime 2020-02-16
   * @param    {string}   key   缓存名
   * @param    {any}  value 缓存值
   */
  set: function(key, value) {
    Storejs.set(key, value);
  },
  /**
   * 获取缓存
   * @Author   Martinsun<syh@sunyonghong.com>
   * @DateTime 2020-02-16
   * @param    {string}   key   缓存名
   * @return    any   value 默认值
   */
  get: function(key, value) {
    var _value = Storejs.get(key);
    if (typeof(_value) != 'undefined') {
      return _value;
    }

    return Util.isDef(value) ? value : undefined;
  },
  /**
   * 检测某个缓存是否存在
   * @Author   Martinsun<syh@sunyonghong.com>
   * @DateTime 2020-02-16
   * @param    {string}   key   缓存名
   * @return   Boolean
   */
  has: function(key) {
    if (this.get(key)) {
      return true;
    }
    return false;
  },
  /**
   * 删除某个缓存
   * @Author   Martinsun<syh@sunyonghong.com>
   * @DateTime 2020-02-16
   * @param    {string}   key   缓存名
   */
  delete: function(key) {
    Storejs.remove(key);
  },
  /**
   * 移除某个缓存
   * @Author   Martinsun<syh@sunyonghong.com>
   * @DateTime 2020-02-16
   * @param    {string}   key   缓存名
   */
  remove: function(key) {
    this.delete(key);
  },
  /**
   * 清空缓存
   * @Author   Martinsun<syh@sunyonghong.com>
   * @DateTime 2020-02-16
   */
  clear: function() {
    Storejs.clear();
  }
}

export default store
